' 
' Copyright (C) 2014 Infinity CCS Ltd (http://www.infinityccs.com/)
' Copyright (C) 2008 Sasa Coh <sasacoh@gmail.com>
'
' This program is free software; you can redistribute it and/or modify
' it under the terms of the GNU General Public License as published by
' the Free Software Foundation; either version 3 of the License, or
' (at your option) any later version.
'
' This program is distributed in the hope that it will be useful,
' but WITHOUT ANY WARRANTY; without even the implied warranty of
' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
' GNU General Public License for more details.
'
' You should have received a copy of the GNU General Public License
' along with this program.  If not, see <http://www.gnu.org/licenses/>. 
'/


Imports System
Imports System.Collections.Generic
Imports System.Text

Namespace Common.Config
  ''' <summary>
  ''' IAccount interface
  ''' </summary>
  Public MustInherit Class IAccount
    ''' <summary>
    ''' Account enabled/disabled flag
    ''' </summary>
    MustOverride Property Enabled As Boolean

    MustOverride ReadOnly Property IsNull As Boolean
    ''' <summary>
    ''' Represents a value assigned to an account by a sip stack.   
    ''' </summary>
    Property pjsipIndex As Integer = -1
    ''' <summary>
    ''' Account name
    ''' </summary>
    MustOverride Property AccountName As String
    ''' <summary>
    ''' Account host name
    ''' </summary>
    MustOverride Property HostName As String
    ''' <summary>
    ''' Account username
    ''' </summary>
    MustOverride Property UserName As String
    ''' <summary>
    ''' Account password
    ''' </summary>
    MustOverride Property Password As String
    ''' <summary>
    ''' Account display
    ''' </summary>
    MustOverride Property DisplayName As String
    ''' <summary>
    ''' Account Domain name
    ''' </summary>
    MustOverride Property DomainName As String
    ''' <summary>
    ''' Account current state (temporary data)
    ''' </summary>
    Property pjsipRegStatus As Integer = -1
    ''' <summary>
    ''' Account current state (temporary data)
    ''' </summary>
    Property pjsipRegStatusText As String = ""
    ''' <summary>
    ''' Account Proxy Address (optional)
    ''' </summary>
    MustOverride Property ProxyAddress As String
    ''' <summary>
    ''' VoIP Transport mode
    ''' </summary>
    MustOverride Property TransportMode As ETransportMode

    ''' <summary>
    ''' Call forwarding flag (unconditional)
    ''' </summary>
    Property CFUnconditional As Boolean
    ''' <summary>
    ''' Call forwarding number (unconditional)
    ''' </summary>
    Property CFUnconditionalNumber As String

    ''' <summary>
    ''' Call forwarding flag (busy)
    ''' </summary>
    Property CFBusy As Boolean
    ''' <summary>
    ''' Call forwarding number (busy)
    ''' </summary>
    Property CFBusyNumber As String

    ''' <summary>
    ''' Call forwarding flag (no answer)
    ''' </summary>
    Property CFNoAnswer As Boolean
    ''' <summary>
    ''' Call forwarding number (no answer)
    ''' </summary>
    Property CFNoAnswerNumber As String
    ''' <summary>
    ''' Call forwarding timeout (no answer)
    ''' </summary>
    Property CFNoAnswerTimeout As Integer

    MustOverride ReadOnly Property Key As String

  End Class




End Namespace
